home *** CD-ROM | disk | FTP | other *** search
- .DATA
- ;---───────════════════════════════════════════════════════════════───────----
- ERROR_TXT db "iNcORRECT fILE! :-P",0
- GOOD_TXT db " cORRECT !! :-)",0
-
- Fname db "CrkMe4.Dat",0
- hFile dd 0
-
- SBuff dd 0
-
- Table1 db 16 dup (0)
- Table2 db 20 dup (0)
- UName db 12 dup (0)
-
- X db 0
- Y db 0
- Z db 0
- T db 0
-
- V1 db 0
- V2 db 0
- V3 db 0
-
- .CODE
- ;---───────════════════════════════════════════════════════════════───────----
- Crack_proc PROC
- USES ebx,ecx,edx,esi,edi,ebp ; Don't forget this
-
- Call CreateFileA , OFFSET Fname , 0C0000000h ,3,0,3,80h,0
- cmp eax , INVALID_HANDLE_VALUE
- jz Error
- mov hFile , eax
-
-
- Call ReadFile , hFile , OFFSET Table1 , 48 , OFFSET SBuff , NULL
- Call CloseHandle , hFile
- Cmp dword ptr SBuff , 48
- Mov eax , 0
- Jb Exit
-
- mov al , byte ptr [Table1+32]
- mov byte ptr V3 , al
-
- Mov esi , OFFSET Table1
- Call DeCode , esi, esi, 4
-
- Mov edi , OFFSET Table1
- Add edi , 12
- xor al , al
- Mov ecx , 4
- rep stosb
-
- Mov esi , OFFSET Table2
- Call DeCode , esi, esi, 5
-
- Call Check_It
-
- Exit:
- Cmp eax , 0
- Jz Error
-
-
- Correct:
- Cmp byte ptr Table2 , 0
- Jz Error
- Call SendMessage , IDC_EDIT1, WM_SETTEXT, 0 , OFFSET GOOD_TXT
- Call SendMessage , IDC_EDIT2, WM_SETTEXT, 0 , OFFSET Table2
- RET
-
-
- Error:
- Call SendMessage , IDC_EDIT1, WM_SETTEXT, 0 , OFFSET ERROR_TXT
- Call SendMessage , IDC_EDIT2, WM_SETTEXT, 0 , OFFSET ERROR_TXT
- RET
-
- Crack_proc ENDP
-
- ;---───────════════════════════════════════════════════════════════───────----
-
- DeCode PROC D_from:DWORD, D_to:DWORD, Count:Byte
- Mov esi , dword ptr D_from
- Mov edi , dword ptr D_to
-
- @J1: Mov eax , dword ptr [esi]
- Mov dword ptr X , eax
- add esi , 4
-
- Mov al , byte ptr V3
- Sub byte ptr X , al
- Sub byte ptr Y , al
- Sub byte ptr Z , al
- Sub byte ptr T , al
-
-
- Mov al , byte ptr Y
- Mov bl , al
- and al , 0fh
- Mov byte ptr Y , al
-
- And bl , 0f0h
- shr bl , 4
-
- Mov al , byte ptr Z
- mov byte ptr Z , bl
-
- mov bl , al
- and al , 3
- MOv byte ptr V1 , al
-
- and bl , 0fch
- shr bl , 2
- mov byte ptr V2 , bl
-
- Mov al,X
- Mov bl,Z
- Shl al, 2
- Or al,bl
- Mov [edi] , al
- Inc edi
-
- Mov al,Y
- Mov bl,V2
- Shl al, 4
- Or al,bl
- Mov [edi] , al
- Inc edi
-
- Mov al,V1
- Mov bl,T
- Shl al, 6
- Or al,bl
- Mov [edi] , al
- Inc edi
- Dec byte ptr Count
- Jnz @J1
-
- Ret
- DeCode ENDP
- ;---───────════════════════════════════════════════════════════════───────----
- Check_It PROC
- Xor eax , eax
- Xor ebx,ebx
-
- Mov esi , OFFSET Table2-8
- Mov edi , OFFSET Table2
-
- mov ebp , dword ptr [edi+12]
- and ebp , 0ffffffh
- Shl ebp , 8
- xor ebp , 55555555h
-
- Mov ecx , 3
-
- @Loop1: STD
- lodsd
- Add eax , ebp
- Mov ebx , dword ptr [edi]
-
- Mul ebx
- Mov eax , edx
- ClD
- stosd
- Loop @Loop1
-
- add esi , 20
- add edi , 8
- mov ecx,3
-
- @Loop2:
- lodsd
- mov ebx , dword ptr [edi]
- add edi , 4
- cmp eax,ebx
- jnz @End1
- Loop @Loop2
-
- mov eax,1
- ret
-
- @End1:
- xor eax,eax
- rET
- Check_It ENDP
-